clojure语言

您所在的位置:网站首页 编程语言 clojure clojure语言

clojure语言

2023-08-10 17:01| 来源: 网络整理| 查看: 265

clojure语言

本文介绍了Clojure编程语言。 Clojure是Lisp的方言。 假定您还不了解Lisp。 而是假定您具有Java技术知识。 要编写Clojure程序,您需要Java Development Kit V5或更高版本以及Clojure库。 对于本文,使用了JDK V1.6.0_13和Clojure V1。 您还应该利用Eclipse的Clojure插件(clojure-dev),并且将需要Eclipse。 在本文中,使用了Eclipse V3.5以及clojure-dev 0.0.34。 请参阅相关主题的链接。

什么是Clojure?

不久之前,在Java虚拟机(JVM)上运行程序意味着使用Java编程语言编写程序。 那些日子已经一去不复返了,因为现在您有很多选择。 许多流行的选择,例如Groovy,Ruby(通过JRuby)和Python(通过Jython),都允许使用更具过程性,脚本化的编程风格,或者它们具有自己的面向对象编程风格。 这些都是Java程序员熟悉的范例。 有人可能会争辩说,使用这些语言,您编写的程序与使用Java语言编写的程序相似。 您只需要使用其他语法即可。

Clojure是JVM的另一种编程语言。 但是,它与Java技术或提到的任何其他JVM语言完全不同。 它是Lisp的方言。 Lisp编程语言家族已有很长的历史了-实际上自1950年代以来。 Lisp使用不同的S表达式或前缀表示法。 这种表示法可以概括为(function arguments...) 。 您始终以函数名称开头,并列出零个或多个参数以传递给该函数。 通过使用括号将函数及其参数组合在一起。 这导致Lisp的商标之一:很多括号。

您可能会猜到,Clojure是一种功能编程语言。 学术界可以争论它的“纯度”,但是它绝对包含了函数式编程的Struts:避免可变状态,递归,高阶函数等。Clojure还是一种动态类型化的语言,尽管您可以选择添加类型信息来提高性能。代码中的关键路径。 Clojure不仅在JVM上运行,而且在设计时考虑了Java的互操作性。 最后,Clojure是一种在设计时考虑了并发性的语言,并且具有与并发编程相关的一些独特功能。

通过示例Clojure

对于许多人来说,学习新语言的最佳方法是开始编写代码。 本着这种精神,我们将处理一些简单的编程问题,并使用Clojure解决它们。 我们将详细介绍解决方案,以更好地了解Clojure的工作原理,使用方式以及它做得如何。 但是,像其他任何语言一样,我们需要建立一个开发环境来使用它。 幸运的是,使用Clojure可以很容易地做到这一点。

最少的设置

使用Clojure所需的全部是JDK和Clojure库,它是单个JAR文件。 开发和运行Clojure程序有两种常用方法。 最常见的是使用其read-eval-print-loop(REPL)。

清单1. Clojure REPL $ java -cp clojure-1.0.0.jar clojure.lang.Repl Clojure 1.0.0- user=>

该命令是从Clojure JAR所在的目录运行的。 根据需要调整JAR的路径。 您还可以创建脚本并执行脚本。 为此,您需要执行一个名为clojure.main的Java类。

清单2. Clojure主要 $ java -cp clojure-1.0.0.jar clojure.main /some/path/to/Euler1.clj 233168

同样,您需要调整Clojure JAR和脚本的路径。 最后,IDE支持Clojure。 Eclipse用户可以使用其Eclipse更新站点安装clojure-dev插件。 安装完成后,确保您在Java透视图中,然后可以创建一个新的Clojure项目和新的Clojure文件,如下所示。

图1.使用clojure-dev,Eclipse的Clojure插件 使用clojure-dev,Eclipse的Clojure插件

使用clojure-dev,您可以突出显示一些基本的语法,包括括号匹配(任何Lisp都必须具备)。 您还可以在直接嵌入Eclipse的REPL中启动任何脚本。 截至本文撰写时,该插件仍是一个非常新的插件,其功能正在Swift发展。 现在我们已经有了基本的设置,让我们通过编写一些Clojure程序来探索语言。

示例1:使用序列

Lisp的名称来自“列表处理”,通常说Lisp中的所有内容都是一个列表。 在Clojure中,这被概括为序列。 对于第一个示例,我们将处理以下编程问题。

如果我们列出所有低于10的自然数,这些自然数是3或5的倍



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3